<?php

require_once(dirname(__FILE__).'/../proto/GcBaseFilter.class.php');


class GcPriceRangeFilter extends GcBaseFilter {

 const filterLowId = 'gcfPriceMin';
 const filterHighId = 'gcfPriceMax';
 const filterDatabaseId = 'price';
	
 private $_lowerPriceBound;
 private $_higherPriceBound;

  
  public function getFilterDatabaseQuery($bootstrap) {
    $responce = '';
    
    switch($bootstrap) {
      case 'where':
        $responce =  $this->prepareFilterWhereQuery();
      break;
      case 'value':
      	$responce = array($this->lowerPriceBound, $this->higherPriceBound);
      break;
    }
    
    return $responce;
  }
  
protected function getFilterValue() {
    $this->lowerPriceBound = $_GET[self::filterLowId];
    $this->higherPriceBound = $_GET[self::filterHighId];
  }
  
  function __construct() {
  	$this->getFilterValue();
  }
  
  public function isActive() {
  	
  	// zwracamy jedynie wartość przypisaną do górnego zakresu filtrowania po cenie
  	// jeśli ta jest ustawiona, to filtr można z powodzeniem zastosować ( jesli
  	// dolna granica nie jest ustawiona, przyjmujemy jej wartość na ZERO ) 
  	return $this->higherPriceBound;
  }
  
  
  
  protected function prepareFilterWhereQuery() {
    $columnId = self::filterDatabaseId;
    $query = '';     
    $query .= $columnId.' > %d AND '.$columnId.' < %d ';
    return $query;
  }
  
}